import {
	defineConfig
} from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import {
	VantResolver
} from '@vant/auto-import-resolver';
import path from 'path'
import postcsspxtoviewport from 'postcss-px-to-viewport'
// https://vitejs.dev/config/
export default defineConfig({
	plugins: [
		uni(),
		AutoImport({
			resolvers: [VantResolver()],
		}),
		Components({
			resolvers: [VantResolver()],
		}),
	],
	resolve: {
		alias: {
			'@/': path.resolve(__dirname, './src')
		}
	},
	css: {
		// css预处理器
		preprocessorOptions: {
			scss: {
				api: "modern-compiler",
				silenceDeprecations: ['legacy-js-api'],
				// 引入 mixin.scss 这样就可以在全局中使用 mixin.scss中预定义的变量了
				// 给导入的路径最后加上 ; 
				additionalData: '@import "@/static/style/mixin.scss";'
			}
		},
		postcss: {
		        plugins: [
		          postcsspxtoviewport({
		            // 要转化的单位
		            unitToConvert: 'px',
		            // UI设计稿的大小
		            viewportWidth: 375,
		            // 转换后的精度
		            unitPrecision: 6,
		            // 转换后的单位
		            viewportUnit: 'vw',
		            // 字体转换后的单位
		            fontViewportUnit: 'vw',
		            // 能转换的属性，*表示所有属性，!border表示border不转
		            propList: ['*'],
		            // 指定不转换为视窗单位的类名，
		            selectorBlackList: ['ignore-'],
		            // 最小转换的值，小于等于1不转
		            minPixelValue: 1,
		            // 是否在媒体查询的css代码中也进行转换，默认false
		            mediaQuery: false,
		            // 是否转换后直接更换属性值
		            replace: true,
		            // 忽略某些文件夹下的文件或特定文件，例如 'node_modules' 下的文件
		            exclude: [],
		            // 包含那些文件或者特定文件
		            include: [],
		            // 是否处理横屏情况
		            landscape: false
		          }),
		        ]
		      }
	}
})